Public Class EntrezSummary
    Inherits SummaryDataRecord

    Public Enum ItemTypeField
        PubDate = 0
        EPubDate = 1
        Source = 2
        AuthorList = 3
        LastAuthor = 4
        Title = 5
        Volume = 6
        Issue = 7
        Pages = 8
        LangList = 9
        NlmUniqueID = 10
        ISSN = 11
        ESSN = 12
        PubTypeList = 13
        RecordStatus = 14
        PubStatus = 15
        ArticleIds = 16
        History = 17
        References = 18
        HasAbstract = 19
        PmcRefCount = 20
        FullJournalName = 21
        SO = 22

    End Enum


#Region "Base Methods"

    Public Overrides ReadOnly Property FieldCount() As Integer
        Get
            Return MyBase.GetFieldCount(Of ItemTypeField)()
        End Get
    End Property

    Public Overloads Overrides ReadOnly Property Item(ByVal name As String) As Object
        Get
            Return MyBase.GetItem(Of ItemTypeField)(name)
        End Get
    End Property


    Public Overloads Overrides Function GetSchemaTable() As System.Data.DataTable

        Return MyBase.GetSchemaTable(Of ItemTypeField)()

    End Function

    Public Overrides Function GetName(ByVal i As Integer) As String

        Return MyBase.GetName(Of ItemTypeField)(i)

    End Function

    Public Overrides Function GetOrdinal(ByVal name As String) As Integer

        Return MyBase.GetOrdinal(Of ItemTypeField)(name)

    End Function


    Public Overrides Function GetData(ByVal i As Integer) As System.Data.IDataReader

        Throw New NotImplementedException("")

    End Function

#End Region



    Public Function GetPubDate() As Date

        Return MyBase.GetDateTime(Me.docSumField, ItemTypeField.PubDate)

    End Function

    Public Function GetEPubDate() As Date

        Return MyBase.GetDateTime(Me.docSumField, ItemTypeField.EPubDate)

    End Function

    Public Function GetSource() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.Source)

    End Function

    Public Function GetAuthorList() As String()

        Return MyBase.GetList(Me.docSumField, ItemTypeField.AuthorList)

    End Function

    Public Function GetLastAuthor() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.LastAuthor)

    End Function

    Public Function GetTitle() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.Title)

    End Function

    Public Function GetVolume() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.Volume)

    End Function

    Public Function GetIssue() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.Issue)

    End Function

    Public Function GetPages() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.Pages)

    End Function

    Public Function GetLangList() As String()

        Return MyBase.GetList(Me.docSumField, ItemTypeField.LangList)

    End Function

    Public Function GetNlmUniqueID() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.NlmUniqueID)

    End Function

    Public Function GetISSN() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.ISSN)

    End Function

    Public Function GetESSN() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.ESSN)

    End Function

    Public Function GetPubTypeList() As String()

        Return MyBase.GetList(Me.docSumField, ItemTypeField.PubTypeList)

    End Function

    Public Function GetRecordStatus() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.RecordStatus)

    End Function

    Public Function GetPubStatus() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.PubStatus)

    End Function

    Public Function GetArticleIds() As String()

        Return MyBase.GetList(Me.docSumField, ItemTypeField.ArticleIds)

    End Function

    Public Function GetHistory() As String()

        Return MyBase.GetList(Me.docSumField, ItemTypeField.History)

    End Function

    Public Function GetReferences() As String()

        Return MyBase.GetList(Me.docSumField, ItemTypeField.References)

    End Function

    Public Function GetHasAbstract() As Integer

        Return MyBase.GetInteger(Me.docSumField, ItemTypeField.HasAbstract)

    End Function

    Public Function GetPmcRefCount() As Integer

        Return MyBase.GetInteger(Me.docSumField, ItemTypeField.PmcRefCount)

    End Function

    Public Function GetFullJournalName() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.FullJournalName)

    End Function

    Public Function GetSO() As String

        Return MyBase.GetString(Me.docSumField, ItemTypeField.SO)

    End Function




End Class
